﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data;
using WBGModel;

namespace WBGDal
{
    public class DalFilmeCopia : ICRUD
    {
        public List<ModelFilmeCopia> Listar()
        {
            return Listar("");
        }

        public List<ModelFilmeCopia> Listar(string filtro)
        {
            String cmd = "SELECT FilmeCopia.*, Filme=Filme.nome FROM FilmeCopia, Filme WHERE FilmeCopia.idFilme=Filme.idFilme" + (filtro.CompareTo("") == 0 ? "" : " AND " + filtro);
            return ConvertToList(UtilBanco.ExecComRetorno(cmd));
        }

        private List<ModelFilmeCopia> ConvertToList(DataTable resultSet)
        {
            List<ModelFilmeCopia> lst = new List<ModelFilmeCopia>();
            for (int i = 0; i < resultSet.Rows.Count; i++)
			{
                DataRow dr = resultSet.Rows[i];
                ModelFilmeCopia copia = new ModelFilmeCopia();
                copia.idCopia = Convert.ToInt32(dr["idCopia"]);
                copia.idFilme = Convert.ToInt32(dr["idFilme"]);
                copia.Filme = dr["Filme"].ToString();
                copia.disponivel = Convert.ToBoolean(dr["disponivel"]);
                lst.Add(copia);
			}
            return lst;
        }

        public void Inserir(ModelFilmeCopia obj)
        {
            String cmd = String.Format("INSERT INTO FilmeCopia (idFilme,disponivel) VALUES ({0},'{1}')", obj.idFilme, obj.disponivel);
            UtilBanco.ExecSemRetorno(cmd);
        }

        public void Alterar(ModelFilmeCopia obj)
        {
            String cmd = String.Format("UPDATE FilmeCopia SET idFilme={0}, disponivel='{1}' WHERE idCopia={2}", obj.idFilme, obj.disponivel, obj.idFilme);
            UtilBanco.ExecSemRetorno(cmd);
        }

        public void Deletar(int id)
        {
            String cmd = String.Format("DELETE FROM FilmeCopia WHERE idCopia={0}", id);
            UtilBanco.ExecSemRetorno(cmd);
        }
    }
}
